function y$(selector){
  if (window === this) { return new y$(selector); }
  if (!jQuery) {  return console.error('La función jQuery es necesaria y no está disponible.');  }
  this.jQe = jQuery(selector);  // regresamos el contenido del selector por medio de this.jQe
  return this;
} //Metodos:
y$.prototype = {
// DE APOYO ----------------
 /* func: Nos retorna lo que le pasemos como parametro para comprobar si pasamos bien el objeto, ej: {primero: "uno", segundo: "dos", tercero: "tres"} */
    returnObjectConfig: function(cfg) {
        console.info('La configuración para la función será pasada como un parámetro de tipo objeto, memorizada en el objeto "cfg" y usada mediante cfn.clave');
       if (cfg) { return cfg };
       return 'No se ha recibido valor alguno';
    },
 /* func: Comprueba si lo que le pasamos es un Array o no lo es (retorna true/false) */
    isArray: function(testObject) {
        return testObject && !(testObject.propertyIsEnumerable('length')) && typeof testObject === 'object' && typeof testObject.length === 'number';
    },
 /* comp: webkit - func: Activa/desactiva un filtro de escala de grises sobre el elemento html para q podamos comprobar el contraste */
    grayScale: function() { 
        if (window.document.body.parentElement.style.webkitFilter != 'grayscale(100%)') {
            window.document.body.parentElement.style.webkitFilter = 'grayscale(100%)';
           return 'enabled';
        } else {
            window.document.body.parentElement.style.webkitFilter = 'grayscale(0%)';
           return 'disabled';
        }
       return this.jQe;
    },
 /* func: Conjunto de funciones para enviar y recuperar informacion mediante la URL */
    urlGetVar: function(cfg) {
       var url = (typeof cfg.url == 'string')? cfg.url : document.URL ;
        if (url.indexOf("?") == -1) { url += "?"+cfg.key+'='+cfg.value; }
        else { url+="&"+cfg.key+'='+cfg.value; }
       return url;
    },
    urlSearchVar: function(cfg) {
       var url = (typeof cfg.url == 'string')? cfg.url : document.URL ;
       var initpos = url.indexOf(cfg.key);
        if (initpos > -1) { 
           var endpos;
            initpos = initpos + cfg.key.length;
            endpos = url.indexOf('&',initpos);
           if (endpos < 0) { return url.substring(initpos); }
           return url.substring(initpos,endpos);
        } else { return null; }
    },
    varForUrl: function(cfg) {
       //cfg.action (por defecto 'send', pudiendo tambien ser #añadir_valor #borrar_valor #leer_valor #borrar(variable)
        return this;
    },
    newBrowserWindow: function(cfg) {
      var width = (cfg.width)? cfg.width : (window.innerWidth * 0.8).toFixed();
       window.open(URL,"",'width='+width+',height=720,menubar=yes,resizable=yes,scrollbars=yes,toolbar=yes');

        return width;
    },
    metodo3: function() {
        return this;
    },
    metodo3: function() {
        return this;
    },
    metodo3: function() {
        return this;
    },
    metodo3: function() {
        return this;
    },
    metodo3: function() {
        return this;
    },
    metodo3: function() {
        return this;
    },
}
